/************************************************************
** Archivo:		ComentarioView
** Autor:		
** Fecha:		16/05/2009 19:19:02
** Descripción:	Clase generada automáticamente
** Cliente:		SC
** Proyecto:	eWedding
************************************************************/

using System;
using System.Collections.Generic;
using System.Text;

using Circo.Framework.BusinessLogic;
using Circo.Framework.Persistencia;

using SC.eWedding.Data.Entities;


namespace SC.eWedding.BusinessLogic.Views
{
    public partial class ComentarioView : AbstractView
    {
    
        #region Private Vars

		private ComentarioEntity _comentario;

        #endregion

        #region Constructors

		
		public ComentarioView()
		{
			CrearVista(false);
		}

		public ComentarioView(bool createRelatedViews)
		{
			CrearVista(createRelatedViews);
		}

		private void CrearVista(bool createRelatedViews)
		{
			this._comentario = new ComentarioEntity();

			if (createRelatedViews)

			{

				this.Usuario = new UsuarioView(true);

				this.ProdSer = new ProdSerView(true);

			}

		}

		public ComentarioView(ComentarioEntity unaEntidad)
		{
			if (unaEntidad != null)
				this._comentario = unaEntidad;

		}



        #endregion
        
        #region Attributes

		
		public int Id
		{
			get { return this._comentario.Id; }
			set { this._comentario.Id = value; }
		}

		private UsuarioView _usuario = null;
		public UsuarioView Usuario
		{
			get
			{
				if (this._usuario == null)
				{
					if (this._comentario.Usuario != null)
						this._usuario = new UsuarioView(this._comentario.Usuario);
				}
				return _usuario;
			}
			set
			{
				if (value != null)
				{
					this._comentario.Usuario = value.MapToEntity();
					this._usuario = new UsuarioView(this._comentario.Usuario);
				}
				else
				{
					this._comentario.Usuario = null;
					this._usuario = null;
				}
			}
		}

		private ProdSerView _prodSer = null;
		public ProdSerView ProdSer
		{
			get
			{
				if (this._prodSer == null)
				{
					if (this._comentario.ProdSer != null)
						this._prodSer = new ProdSerView(this._comentario.ProdSer);
				}
				return _prodSer;
			}
			set
			{
				if (value != null)
				{
					this._comentario.ProdSer = value.MapToEntity();
					this._prodSer = new ProdSerView(this._comentario.ProdSer);
				}
				else
				{
					this._comentario.ProdSer = null;
					this._prodSer = null;
				}
			}
		}

		public string Comentario
		{
			get { return this._comentario.Comentario; }
			set { this._comentario.Comentario = value; }
		}

		public TipoCalif Calificacion
		{
			get { return (TipoCalif)this._comentario.Calificacion; }
			set { this._comentario.Calificacion = (short)value; }
		}


        #endregion

        #region Mapping

		
		public ComentarioEntity MapToEntity()
		{
			return this._comentario;
		}

		public override Entity MapToBaseEntity()
		{
			return MapToEntity();
		}



        #endregion

        #region CollectionSyncro

		

        #endregion
        
		#region Enums

		public enum  TipoCalif
		{
			MuyMalo = 5,
			Malo = 4,
			Regular = 3,
			Bueno = 2,
			Excelente = 1,
		}

		#endregion

    }
}
